package com.zhn;

import java.util.ArrayList;
import java.util.List;

/**
 * 给你一个 m 行 n 列的矩阵 matrix ，请按照 顺时针螺旋顺序 ，返回矩阵中的所有元素。
 *
 * 输入：matrix = [[1,2,3],[4,5,6],[7,8,9]]
 * 输出：[1,2,3,6,9,8,7,4,5]
 */
public class SpiralOrder {
    public static void main(String[] args) {
        int[][] matrix = {{1,2,3},{4,5,6},{7,8,9}};
        int i = 0,j = 0;

    }
    public List<Integer> spiralOrder(int[][] matrix) {
        int up = 0,down = matrix.length-1,left = 0,right = matrix[0].length-1;
        List<Integer> res = new ArrayList<>();
        while(true){
            for(int i = left;i <= right; i++) res.add(matrix[up][i]);
            if(++up > down) break;
            for(int i = up;i <= down;i++) res.add(matrix[i][right]);
            if(--right < left) break;
            for(int i = right;i >= left;i--) res.add(matrix[down][i]);
            if(--down < up) break;
            for(int i = down;i >= up;i--) res.add(matrix[i][left]);
            if(++left > right) break;
        }
        return res;
    }
}
